#ifndef DESIGN_TEMPLATE_H_
#define DESIGN_TEMPLATE_H_

namespace templated{

class CaffeineBeverage
{
public:
    void prepareRecipe();

    void boilWater();
    void pourInCup();
public:
    virtual void brew() = 0;
    virtual void addCondiments() = 0;
};

class Tea : public CaffeineBeverage
{
public:
    virtual void brew();
    virtual void addCondiments();
};

class Coffee : public CaffeineBeverage
{
public:
    virtual void brew();
    virtual void addCondiments();
};

}

#endif // DESIGN_TEMPLATE_H_
